package com.cfw.authority;

import java.io.Serializable;

/**
 * 세션변수로 관리될 데이터 항목들 선언
 * <br/><b>History</b><br/>
 * <pre>
 * 2012. 2. 10. 최초작성
 * </pre>
 * @author 박형일
 * @version 1.0
 */
public class SessionInfo implements Serializable {
	private static final long serialVersionUID = 8474637359476757048L;
	private String remoteIp =			"";
	private String userId =				"";
	private String userPwd =			"";
	private String mstrUserId =			"";
	private String mstrUserPwd =		"";
	private int mstrAuthMode =			-1;
	private String userName =			"";
	private String userOrgCd =			"";
	private String userOrgName =		"";
	private String userMail =			"";
	private String userPhoneNo =		"";
	private String[] roleGroupName =	null;
	private String[] userGroupName =	null;
	private int aMode =					-1;
	private boolean agent =				false;
	private boolean regUser =			false;
	private boolean mstrUser =			false;
	
	/**
	 * 접근IP getter
	 * @return
	 */
	public String getRemoteIp() {
		return remoteIp;
	}
	/**
	 * 접근IP setter
	 * @return
	 */
	public void setRemoteIp(final String remoteIp) {
		this.remoteIp = remoteIp;
	}
	/**
	 * 사용자ID getter
	 * @return
	 */
	public String getUserId() {
		return userId;
	}
	/**
	 * 사용자ID setter
	 * @return
	 */
	public void setUserId(final String userId) {
		this.userId = userId;
	}
	/**
	 * 사용자 비밀번호 getter
	 * @return
	 */
	public String getUserPwd() {
		return userPwd;
	}
	/**
	 * 사용자비밀번호 setter
	 * @return
	 */
	public void setUserPwd(final String userPwd) {
		this.userPwd = userPwd;
	}
	/**
	 * 사용자이메일주소 getter
	 * @return
	 */
	public String getUserMail() {
		return userMail;
	}
	/**
	 * 사용자이메일주소 setter
	 * @return
	 */
	public void setUserMail(final String userMail) {
		this.userMail =	userMail;
	}
	/**
	 * 사용자연락처 getter
	 * @return
	 */
	public String getUserPhoneNo() {
		return userPhoneNo;
	}
	/**
	 * 사용자연락처 setter
	 * @return
	 */
	public void setUserPhoneNo(final String userPhoneNo) {
		this.userPhoneNo =	userPhoneNo;
	}
	/**
	 * 사용자 MSTR ID getter
	 * @return
	 */
	public String getMstrUserId() {
		return mstrUserId;
	}
	/**
	 * 사용자 MSTR ID setter
	 * @return
	 */
	public void setMstrUserId(final String mstrUserId) {
		this.mstrUserId = mstrUserId;
	}
	/**
	 * 사용자 MSTR 비밀번호 getter
	 * @return
	 */
	public String getMstrUserPwd() {
		return mstrUserPwd;
	}
	/**
	 * 사용자 MSTR 비밀번호 setter
	 * @return
	 */
	public void setMstrUserPwd(final String mstrUserPwd) {
		this.mstrUserPwd = mstrUserPwd;
	}
	/**
	 * MSTR 접속구분 getter
	 * @return
	 */
	public int getMstrAuthMode() {
		return mstrAuthMode;
	}
	/**
	 * MSTR 접속구분 setter
	 * @return
	 */
	public void setMstrAuthMode(final int mstrAuthMode) {
		this.mstrAuthMode = mstrAuthMode;
	}
	/**
	 * 사용자명 getter
	 * @return
	 */
	public String getUserName() {
		return userName;
	}
	/**
	 * 사용자명 setter
	 * @return
	 */
	public void setUserName(final String userName) {
		this.userName = userName;
	}
	/**
	 * 사용자 조직명 getter
	 * @return
	 */
	public String getUserOrgName() {
		return userOrgName;
	}
	/**
	 * 사용자 조직코드 getter
	 * @return
	 */
	public String getUserOrgCd() {
		return userOrgCd;
	}
	/**
	 * 사용자 조직코드 setter
	 * @return
	 */
	public void setUserOrgCd(final String userOrgCd) {
		this.userOrgCd = userOrgCd;
	}
	/**
	 * 사용자 조직명 setter
	 * @return
	 */
	public void setUserOrgName(final String userOrgName) {
		this.userOrgName = userOrgName;
	}
	/**
	 * 사용자 기능그룹명 getter
	 * @return
	 */
	public String[] getRoleGroupName() {
		String[] result =	null;
		
		if (roleGroupName != null) {
			result =	roleGroupName.clone();	
		}
		return result;
	}
	/**
	 * 사용자 기능그룹명 setter
	 * @return
	 */
	public void setRoleGroupName(final String[] roleGroup) {
		if (roleGroup != null) {
			this.roleGroupName = roleGroup.clone();
		}
	}
	/**
	 * 사용자 그룹명 getter
	 * @return
	 */
	public String[] getUserGroupName() {
		String[] result =	null;
		
		if (userGroupName != null) {
			result =	userGroupName.clone();
		}
		return result;
	}
	/**
	 * 사용자그룹명 setter
	 * @return
	 */
	public void setUserGroupName(final String[] userGroup) {
		if (userGroup != null) {
			this.userGroupName = userGroup.clone();
		}
	}
	/**
	 * 사용자 접근구분 getter
	 * @return
	 */
	public int getAMode() {
		return aMode;
	}
	/**
	 * 사용자 접근구분 setter
	 * @return
	 */
	public void setAMode(final int amode) {
		this.aMode = amode;
	}
	/**
	 * 사외인원 여부 getter
	 * @return
	 */
	public boolean isAgent() {
		return agent;
	}
	/**
	 * 사외인원 여부 setter
	 * @return
	 */
	public void setAgent(final boolean agent) {
		this.agent = agent;
	}
	/**
	 * 등록사용자 여부 getter
	 * @return
	 */
	public boolean isRegUser() {
		return regUser;
	}
	/**
	 * 등록사용자 여부 setter
	 * @return
	 */
	public void setRegUser(final boolean regUser) {
		this.regUser = regUser;
	}
	/**
	 * MSTR 사용자여부 getter
	 * @return
	 */
	public boolean isMstrUser() {
		return mstrUser;
	}
	/**
	 * MSTR 사용자여부 setter
	 * @return
	 */
	public void setMstrUser(final boolean mstrUser) {
		this.mstrUser = mstrUser;
	}
	public String toString() {
		final StringBuffer buf =	new StringBuffer(250);
		
		buf.append("ip:").append(remoteIp)
			.append(",userid:").append(userId)
			.append(",userPwd:").append(userPwd)
			.append(",userMail:").append(userMail)
			.append(",userPhoneNo:").append(userPhoneNo)
			.append(",mstrUserid:").append(mstrUserId)
			.append(",mstrUserPwd:").append(mstrUserPwd)
			.append(",mstrAuthMode:").append(mstrAuthMode)
			.append(",userName:").append(userName)
			.append(",userOrgCd:").append(userOrgCd)
			.append(",userOrgName:").append(userOrgName)
			.append(",amode:").append(aMode)
			.append(",isAgent:").append(agent)
			.append(",isRegUser:").append(regUser)
			.append(",isMstrUser:").append(mstrUser);

		buf.append(",roleGroupName:{");
		if (roleGroupName != null) {
			for (int i = 0; i < roleGroupName.length; i++) {
				buf.append((i == 0 ? "" : ",") + roleGroupName[i]);
			}
		}
		buf.append("},userGroupName:{");
		if (userGroupName != null) {
			for (int i = 0; i < userGroupName.length; i++) {
				buf.append((i == 0 ? "" : ",") + userGroupName[i]);
			}
		}
		buf.append('}');
		
		return buf.toString();
	}
}
